/*
 * Config.java
 *
 * Created on 20 July 2007, 11:25
 *
 * Copyright (C)
 *
 * This program is free software; you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation; either version 2 of the License, or (at your option) any later
 * version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
 * Place, Suite 330, Boston, MA 02111-1307 USA
 */

package com.grubby.databean.utils;

import java.io.File;
import java.util.List;

/**
 * Used to hold the applications configuration.
 * @author A. HARMEL-LAW. E: andrew.harmel.law@gmail.com
 * @version 0.1
 */
public class Config {
    
    // TODO Process this
    
    /** The list of importable nodes. **/
    private List importableTrees;
    
    /** The ldap suffix appended to the created dn of the organisation. */
    private String ldapDNSuffix;
    
    /** The name of the file to process. */
    private File fileToProcess;
    
    /** The working directory of the application. */
    private File workingDirectory;
    
    /** Should the application perform data massaging. */
    private boolean performDataMassaging = false;
    
    /**
     * Constructor for the config object.
     * @param importableTrees
     * @param thirdLevelCodes
     * @param fourthLevelCodes
     * @param ldapDNSuffix
     * @param fileToProcess
     * @param workingDirectory
     */
    public Config(List importableTrees, String ldapDNSuffix, File fileToProcess,
            File workingDirectory, boolean performDataMassaging) {
        
        super();
        this.importableTrees = importableTrees;
        this.ldapDNSuffix = ldapDNSuffix;
        this.fileToProcess = fileToProcess;
        this.workingDirectory = workingDirectory;
        this.performDataMassaging = performDataMassaging;
    }
    
    public File getFileToProcess() {
        return fileToProcess;
    }
    public List getImportableTrees() {
        return importableTrees;
    }
    public String getLdapDNSuffix() {
        return ldapDNSuffix;
    }
    public File getWorkingDirectory() {
        return workingDirectory;
    }
    public boolean isPerformDataMassaging() {
        return performDataMassaging;
    }
    
//    /** To string method. */
//    public String toString() {
//        return ToStringBuilder.reflectionToString(this);
//    }
}
